#ifndef _BSP_IO_H_
#define _BSP_IO_H_
#include "bsp_include.h"

#define GPIO_WRITE					HAL_GPIO_WritePin
#define GPIO_READ					HAL_GPIO_ReadPin
#define IO_SET						GPIO_PIN_SET
#define IO_RESET					GPIO_PIN_RESET

#define OPEN						1
#define CLOSE						0

/* 运行指示灯 */
#define IO_MCU_LED_PORT				GPIOB
#define IO_MCU_LED_PIN				GPIO_PIN_11
#define MCU_LED(x)					GPIO_WRITE(IO_MCU_LED_PORT, IO_MCU_LED_PIN, x?IO_RESET:IO_SET);

///* 信号指示灯 */
//#define IO_SINGLE_LED_PORT			GPIOB
//#define IO_SINGLE_LED_PIN			GPIO_PIN_12
//#define SINGLE_LED(x)				GPIO_WRITE(IO_SINGLE_LED_PORT, IO_SINGLE_LED_PIN, x?IO_RESET:IO_SET);

/* 蜂鸣器 */
#define IO_BEEP_PORT				GPIOB
#define IO_BEEP_PIN					GPIO_PIN_3
#define BEEP(x)						GPIO_WRITE(IO_BEEP_PORT, IO_BEEP_PIN, x?IO_SET:IO_RESET);

/* 按键1 */
#define IO_KEY1_PORT          		GPIOB
#define IO_KEY1_PIN           		GPIO_PIN_1

/* 按键2 */
#define IO_KEY2_PORT          		GPIOB
#define IO_KEY2_PIN           		GPIO_PIN_0

/* 按键3 */
#define IO_KEY3_PORT          		GPIOA
#define IO_KEY3_PIN           		GPIO_PIN_7

/* 按键4 */
#define IO_KEY4_PORT          		GPIOA
#define IO_KEY4_PIN           		GPIO_PIN_6

/* 按键5 */
#define IO_KEY5_PORT          		GPIOA
#define IO_KEY5_PIN           		GPIO_PIN_5

#define IO_KEY_GET(x,y)				(GPIO_READ(x, y)?0:1)

/* 继电器 */
#define IO_RELAY_PORT				GPIOA
#define IO_RELAY_PIN				GPIO_PIN_4
#define RELAY(x)					GPIO_WRITE(IO_RELAY_PORT, IO_RELAY_PIN, x?IO_SET:IO_RESET);

/* DHT11 */
#define IO_DHT11_PORT				GPIOB
#define IO_DHT11_PIN				GPIO_PIN_12
#define IO_DHT11_HIGH()				GPIO_WRITE(IO_DHT11_PORT, IO_DHT11_PIN, IO_SET);
#define IO_DHT11_LOW()				GPIO_WRITE(IO_DHT11_PORT, IO_DHT11_PIN, IO_RESET);
#define IO_DHT11_READ()				(GPIO_READ(IO_DHT11_PORT, IO_DHT11_PIN)==IO_RESET?0:1)

void bsp_ds18b20_output(void);
void bsp_ds18b20_input(void);

#endif /* _BSP_IO_H_ */
